// 文章发布/修改页面-post-add.html js文件

// 获取文章id
let id = getUrlParam('id');

// 获取分类列表
$.ajax({
    type: 'get',
    url: '/categories',
    success: res => {
        // 若id不存在则渲染添加文章表单
        // 否则根据id查询文章内容，并渲染修改文章表单
        if (id == -1) {
            // 渲染添加文章表单
            let html = template('tpl-addArticle', { data: res });
            $('#articleFormBox').html(html);
        } else {
            // 根据id查询文章内容
            $.ajax({
                type: 'get',
                url: `/posts/${id}`,
                success: result => {
                    // 渲染修改文章表单
                    let html = template('tpl-updateArticle', { category: res, article: result });
                    $('#articleFormBox').html(html);
                },
                error: error => alert('获取文章内容失败！')
            });
        }
    },
    error: err => alert('获取文章分类失败！')
});

// 添加文章表单提交事件
$('#articleFormBox').on('submit', '#addArticleForm', function () {
    // 获取文章标题
    let title = $('#title').val();
    // 获取文章内容
    let contetn = $('#content').val();
    // 获取文章发布时间
    let created = $('#created').val();
    // 判断用户是否输入了标题和文章内容以及文章发布时间
    if (title.trim().length == 0) alert('请输入文章标题！');
    else if (contetn.trim().length == 0) alert('请输入文章内容');
    else if (!created) alert('请选择文章发布时间！');
    else {
        // 获取表单属性
        let params = $(this).serialize();
        // 发送添加文章请求
        $.ajax({
            type: 'post',
            url: '/posts',
            data: params,
            success: res => location.reload(),
            error: err => alert('文章发布失败！')
        });
    }

    // 阻止表单提交
    return false;
});

// 修改表单提交事件
$('#articleFormBox').on('submit', '#updateArticleForm', function () {
    let params = $(this).serialize();
    // 发送修改文章请求
    $.ajax({
        type: 'put',
        url: `/posts/${id}`,
        data: params,
        success: res => location.href = 'posts.html',
        error: err => alert('修改文章失败！')
    });

    // 阻止表单提交
    return false;
});

// 头像上传事件
$('#articleFormBox').on('change', '#feature', function () {
    imgUpload('#feature', '#preview', '#thumbnail');
});